package com.fita.tencent.service;

import com.fita.entity.user.WechatAccount;
import com.fita.tencent.entity.webauth.WebAuth;
import com.fita.tencent.entity.webauth.WebAuthClient;
import com.fita.tencent.entity.webauth.WebAuthConfig;

/**
 * 
 * @author mohanlan
 *
 */
public interface WebAuthService {
    
    /**
     * 获取授权请求方
     * 
     * @param host
     * @return
     */
    public WebAuthClient getWebAuthClient(String host);
    
    /**
     * 创建授权请求
     * 
     * @param webAuth
     * @param config
     */
    public void createWebAuth(WebAuth webAuth, WebAuthConfig config);
    
    /**
     * 获取授权请求
     * 
     * @param state
     * @return
     */
    public WebAuth getWebAuth(String state);

    /**
     * 获取授权请求
     * 
     * @param uuid
     * @return
     */
    public WebAuth loadWebAuth(String uuid);

    /**
     * 进行静默授权
     * 
     * @param webAuth
     * @param openid
     */
    public void authorize(WebAuth webAuth, String openid);
    
    /**
     * 进行非静默授权
     * 
     * @param webAuth
     * @param wechatAccount
     */
    public void refresh(WebAuth webAuth, WechatAccount wechatAccount);

}
